Recently, in proportion to increase of development scale of a software increases, the software need be developed in a short term and extended in series. Accordingly, it is difficult to create the software having high quality. As a means for solving this problem, the software is componentalized as a plurality of components. By reusing each component, design productivity rises. This technique is disclosed in “Interface automata”, Alfaro, L. and Henzinger, T. A. ACM SIGSOFT Software Engineering Notes, 26:55, 109-120, 2001 (Non-patent reference 1).
On the other hand, by regarding a behavioral specification as a model, technique to generate a test case from the model is developed as a model driven test technique (Hereinafter, MDT). In case of generating a test case, quality of the test case is controlled by an input restriction supplied for the behavioral specification. For example, if the input restriction is tightened, the number of test cases to be tested reduces. In reverse case, the number of test cases increases. Briefly, MDT has correlative relationship between the input restriction and the test case generated. This technique is disclosed in “Model-based testing of object-oriented reactive systems with Spec Explorer”, Campbell, C. and Grieskamp, W. and Nachmanson, L. and Schulte, W. and Tillmann, N. and Veanes, Microsoft Research MSR-TR-2005-59, May, 2005 (Non-patent reference 2).
As to componentalization of software according to the prior art, an interface of each component is taken into consideration, and characteristics of the interface is defined. In order to maintain a high quality of components, by using the characteristics of the interface, the components are designed with (so-called) agreement base between the components. In this technique, a connection between two components can be supplemented. However, causality between an input and an output of each component is not clear. Accordingly, in case of installing each component into an entire system, it is difficult to verify and correct a consistency of the behavioral specification between adjacent components. Furthermore, when a new behavior is generated by combining components, a restriction of the behavior cannot be processed.
On the other hand, as to the model driven test, by converting the specification to a state transition machine and searching the state transition machine, a test case is generated. However, when a scale of the object system becomes large, a state explosion occurs. Especially, in a distributed system operating in parallel, a problem of state explosion is remarkable. Accordingly, model driven-development is applied to a component unit of small scale, i.e., a unit test, only.